Skip to content

Add dependencies field to Package Details#3822

Merged
Martí Climent (marticliment) merged 8 commits into
mainfrom
dependencies
Jul 7, 2025
Merged

Add dependencies field to Package Details#3822
Martí Climent (marticliment) merged 8 commits into
mainfrom
dependencies

Conversation

@marticliment

@marticliment Martí Climent (marticliment) commented Jul 7, 2025

Copy link
Copy Markdown
Collaborator

Add a Dependencies field on Package Details

fix #602
fix #1306

@mrixner

mrixner commented Jul 7, 2025

Copy link
Copy Markdown
Contributor

Vcpkg can do this too, see https://learn.microsoft.com/en-us/vcpkg/commands/depend-info

@marticliment

Martí Climent (marticliment) commented Jul 7, 2025

Copy link
Copy Markdown
Collaborator Author

doesn't the json provide the top-level list? For me it worked (see the commit above)

@marticliment Martí Climent (marticliment) marked this pull request as ready for review July 7, 2025 22:08

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Adds a new Dependencies section to package details by extending the data model, updating each manager to list and parse dependencies, and wiring it through the UI.

  • Introduce a Dependencies property on IPackageDetails and its implementation
  • Enable CanListDependencies and implement parsing in all package managers
  • Extend PackageDetailsPage XAML and code-behind to display dependency information

Reviewed Changes

Copilot reviewed 22 out of 22 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/UniGetUI/Pages/DialogPages/PackageDetailsPage.xaml.cs Added dependency UI elements and loading logic
src/UniGetUI/Pages/DialogPages/PackageDetailsPage.xaml Inserted Dependencies_Label and DependenciesParagraph
src/UniGetUI.PackageEngine.PackageManagerClasses/Packages/Classes/PackageDetails.cs Added Dependencies property
src/UniGetUI.PackageEngine.Enums/ManagerCapabilities.cs Added CanListDependencies capability flag
src/UniGetUI.PAckageEngine.Interfaces/IPackageDetails.cs Added Dependencies member and Dependency struct
src/UniGetUI.PackageEngine.Managers.WinGet/WinGet.cs Enabled CanListDependencies
src/UniGetUI.PackageEngine.Managers.WinGet/ClientHelpers/NativeWinGetHelper.cs Implemented raw-output dependency parsing
src/UniGetUI.PackageEngine.Managers.WinGet/ClientHelpers/BundledWinGetHelper.cs Implemented bundled dependency parsing
src/UniGetUI.PackageEngine.Managers.Vcpkg/Vcpkg.cs Enabled CanListDependencies
src/UniGetUI.PackageEngine.Managers.Vcpkg/Helpers/VcpkgPkgDetailsHelper.cs Implemented Vcpkg dependency parsing
src/UniGetUI.PackageEngine.Managers.Scoop/Scoop.cs Enabled CanListDependencies
src/UniGetUI.PackageEngine.Managers.Scoop/Helpers/ScoopPkgDetailsHelper.cs Implemented Scoop dependency parsing (_getDepends, _getSuggests)
src/UniGetUI.PackageEngine.Managers.PowerShell7/PowerShell7.cs Enabled CanListDependencies
src/UniGetUI.PackageEngine.Managers.PowerShell/PowerShell.cs Enabled CanListDependencies
src/UniGetUI.PackageEngine.Managers.Pip/Pip.cs Enabled CanListDependencies
src/UniGetUI.PackageEngine.Managers.Pip/Helpers/PipPkgDetailsHelper.cs Implemented Pip dependency parsing
src/UniGetUI.PackageEngine.Managers.Npm/Npm.cs Enabled CanListDependencies
src/UniGetUI.PackageEngine.Managers.Npm/Helpers/NpmPkgDetailsHelper.cs Implemented NPM dependency parsing
src/UniGetUI.PackageEngine.Managers.Generic.NuGet/BaseNuGetDetailsHelper.cs Added regex-based dependency parsing
src/UniGetUI.PackageEngine.Managers.Generic.NuGet/BaseNuGet.cs Validates CanListDependencies in initializer
src/UniGetUI.PackageEngine.Managers.Dotnet/DotNet.cs Enabled CanListDependencies
src/UniGetUI.PackageEngine.Managers.Chocolatey/Chocolatey.cs Enabled CanListDependencies
Comments suppressed due to low confidence (3)

src/UniGetUI.PackageEngine.Managers.Scoop/Helpers/ScoopPkgDetailsHelper.cs:167

  • [nitpick] Method _getSuggests uses a leading underscore and camelCase, which is inconsistent with PascalCase naming conventions. Consider renaming to GetSuggests.
        private static void _getSuggests(IPackageDetails details, JsonObject? contents)

src/UniGetUI.PackageEngine.Managers.Generic.NuGet/BaseNuGetDetailsHelper.cs:110

  • The new regex-based dependency parsing is untested; add unit tests that cover various <d:Dependencies> formats to ensure correct behavior.
                details.Dependencies.Clear();

src/UniGetUI.PackageEngine.Managers.WinGet/ClientHelpers/NativeWinGetHelper.cs:424

  • The loop variable is named __line, but this condition references line, which is undefined. It should use __line consistently.
                else if (line.Contains("- Package Dependencies"))

Comment thread src/UniGetUI/Pages/DialogPages/PackageDetailsPage.xaml.cs
@mrixner

mrixner commented Jul 7, 2025

Copy link
Copy Markdown
Contributor

Sorry, that commit hadn't loaded when I made the comment. I just wanted to make sure vcpkg was included :).

@marticliment Martí Climent (marticliment) merged commit aa9d47e into main Jul 7, 2025
2 checks passed
@marticliment Martí Climent (marticliment) deleted the dependencies branch July 18, 2025 23:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE REQUEST] Add Dependencies and/or recommends [FEATURE REQUEST] Support for dependency/suggest field

3 participants